083f23c6cda2cf27765b8dd2ce28493ed6245ad9
[lhc/ansible.git] / creation_nouveau_site.yml
1 # commande pour lancer le playbook: ansible-playbook creation_nouveau_site.yml
2 # attention - Par défaut ce scipt se lancer vers ligatures
3
4 - name: Promp pour définir les variables du nouveau ite
5 hosts: ligatures
6 become: true # toutes les tâches seront pas défaut éxécuter en tant que root
7
8 vars:
9 # config_nginx: true à l'avenir on pourrait demander à l'utilisateur de choisir si il veut configurer nginx
10 # nouvelle_version: 27.1.7 # nextcloud
11 # ancienne_version: 27.1.6 # nextcloud
12
13 vars_prompt:
14
15 - name: SITE
16 prompt: 'quel type de site?(ex: nuage, www, paheko ou WP)'
17 private: false
18 default: "nuage"
19
20 - name: TLD
21 prompt: 'TLD du site à mettre à jour?(ex: org)'
22 private: false
23 default: "org"
24
25 - name: DOMAIN
26 prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
27 private: false
28 default: "heureux-cyclage"
29
30 - name: SIGLE
31 prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
32 private: false
33 default: "lhc"
34
35 - name: besoin_https
36 prompt: 'Faut-il configurer un certificat ssl pour le HTTPS?(ex: oui/non)'
37 private: false
38 default: "non"
39
40 # pre_tasks:
41
42 # - name: Vérifier le sigle n'est pas déjà utilisé
43 # ansible.builtin.lineinfile:
44 # dest: /etc/passwd
45 # search_string: "site_{{ SIGLE }}_{{ SITE }}"
46 # state: absent
47 # check_mode: true
48 # changed_when: false
49 # register: presence_sigle
50 # failed_when: presence_sigle.changed
51
52 tasks:
53
54 - name: Inclure la configuration d'un site web basique
55 ansible.builtin.include_tasks: tasks/config_www.yml
56
57 - name: Inclure les configurations optionnelles d'un site www
58 ansible.builtin.include_tasks: tasks/config_options_www.yml
59 when: SITE != 'nuage'
60
61 - name: Inclure la configuration nginx
62 ansible.builtin.include_tasks: tasks/config_nginx.yml
63 vars:
64 template_site: "{{ SITE }}"
65 when: besoin_https == 'non'
66
67 - name: Bloc permettant de générer les certificats SSL
68 when: besoin_https == 'oui'
69 block:
70 - name: Inclure la configuration nginx http
71 ansible.builtin.include_tasks: tasks/config_nginx.yml
72 vars:
73 template_site: 'http'
74
75 - name: Générer un certififat avec certbot # noqa : command-instead-of-module
76 become: true
77 ansible.builtin.command: 'certbot certonly -n --nginx -d {{ SITE }}.{{ DOMAIN }}.{{ TLD }}'
78 register: certbot_log
79 ignore_errors: true
80 changed_when: false
81
82 - name: Afficher les logs certbot
83 ansible.builtin.debug:
84 var: certbot_log
85 when: certbot_log is defined
86
87 - name: Activer la conf ssl dans nginx
88 ansible.builtin.set_fact:
89 ssl_ready: true
90 when: certbot_log is defined
91
92 - name: Inclure la configuration nginx avec ssl
93 ansible.builtin.include_tasks: tasks/config_nginx.yml
94 vars:
95 template_site: "{{ SITE }}"
96
97 - name: Inclure la configuration d'un pool PHP
98 ansible.builtin.include_tasks: tasks/config_pool_php.yml
99 when: config_php == 'oui' or SITE == 'paheko' or SITE == 'WP' or SITE == 'nuage'
100
101 - name: Inclure la configuration d'une bdd postgres
102 ansible.builtin.include_tasks: tasks/config_bdd_postgres.yml
103 when: config_bdd == 'postgres' or SITE == 'nuage'
104
105 - name: Inclure la configuration d'une bdd mariadb
106 ansible.builtin.include_tasks: tasks/config_bdd_mariadb.yml
107 when: config_bdd == 'mariadb' or SITE == 'WP'
108
109 - name: Inclure la configuration nextcloud si besoin
110 ansible.builtin.include_tasks: tasks/config_nuage.yml
111 when: SITE == 'nuage'
112
113 - name: Inclure la configuration paheko si besoin
114 ansible.builtin.include_tasks: tasks/config_paheko.yml
115 when: SITE == 'paheko'
116
117 - name: Inclure la configuration WP si besoin
118 ansible.builtin.include_tasks: tasks/config_wp.yml
119 when: SITE == 'WP'
120
121 - name: Inclure le configuration du backup
122 ansible.builtin.include_tasks: tasks/config_backup.yml
123
124 - name: Inclure le configuration SFTP
125 ansible.builtin.include_tasks: tasks/config_sftp.yml
126 when: sftp == 'oui'